According to the state of the art, methods for transmitting data packets implement mechanisms for acknowledging packets so as to retransmit the erroneous packets.
In the MAC (standing for “Medium Access Channel”) layer, the data to be transmitted or MSDU (standing for “MAC Service Data Unit”) are encapsulated in PDUs (standing for “Protocol Data Units”) with a MAC header. When MSDUs are transmitted, they can be bundled (several fragments of several MSDUs being transmitted in a single PDU) or simply fragmented (only a part (or fragment) of an MSDU is transmitted in a PDU, the remaining parts being transmitted in one or more other PDUs). For communications with ARQ (standing for “Automatic Repeat Request”), an MSDU fragment is divided into several blocks and each block must be acknowledged. According to an IEEE 802.16 standard, a fragment must comprise consecutive blocks which have not been dispatched or acknowledged.
Such a method implemented by a microprocessor of a sending/receiving station is illustrated opposite FIG. 1 and begins with an initialization step 10 in the course of which a variable indicating the current block points to the first block to be transmitted. Then, in the course of a step 11, one or more data packets corresponding to an MSDU corresponding to a set of blocks are transmitted. Thereafter, in the course of a step 12, the station waits and receives an error descriptor, each block transmitted being acknowledged or not as a function of a good or bad reception by its recipient. Then, in the course of a test 13, the microprocessor initializes a current block pointer corresponding to the first block transmitted. Thereafter, in the course of a test 14, the microprocessor verifies whether the current block has indeed been received by its recipient. In the affirmative, in the course of a step 15, the microprocessor updates the list of the blocks to be retransmitted by inserting thereinto the block corresponding to the current block. In the negative or following step 15, in the course of a test 16, the microprocessor verifies whether the current block corresponds to the last block transmitted. In the affirmative, step 11 is repeated, the blocks transmitted corresponding to new blocks or to blocks to be retransmitted corresponding to the list updated in the course of step 15. In the negative, in the course of a step 17, the microprocessor updates the pointer to the current block by pointing it at the following block transmitted. Thereafter, the test 14 is repeated. Thus, the process for updating the list of blocks to be transmitted (first transmission or retransmission following a bad acknowledgement) is relatively lengthy since the number of elementary operations is large (at least 2 times (corresponding to steps 14 and 17) the number of blocks present in an MSDU). This technique therefore presents the drawback of being poorly suited to applications (for example of audiovisual stream transmission type) requiring high reactivity.